package com.example.stuwork.controller;

import com.example.stuwork.common.Result;
import com.example.stuwork.pojo.Admin;
import com.example.stuwork.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 管理员控制器
 */
@RestController
@RequestMapping("/admin")
public class AdminController {
    
    @Autowired
    private AdminService adminService;
    
    /**
     * 根据ID获取管理员信息
     *
     * @param adminId 管理员ID
     * @return 管理员信息
     */
    @GetMapping("/{adminId}")
    public Result<Admin> getAdminById(@PathVariable Long adminId) {
        Admin admin = adminService.getById(adminId);
        if (admin != null) {
            // 出于安全考虑，不返回密码
            admin.setPassword(null);
            return Result.success(admin);
        } else {
            return Result.error("管理员不存在");
        }
    }
    
    /**
     * 根据用户名获取管理员信息
     *
     * @param username 用户名
     * @return 管理员信息
     */
    @GetMapping("/username/{username}")
    public Result<Admin> getAdminByUsername(@PathVariable String username) {
        Admin admin = adminService.getByUsername(username);
        if (admin != null) {
            // 出于安全考虑，不返回密码
            admin.setPassword(null);
            return Result.success(admin);
        } else {
            return Result.error("管理员不存在");
        }
    }
    
    /**
     * 更新管理员信息
     *
     * @param admin 管理员信息
     * @return 更新结果
     */
    @PutMapping("/profile")
    public Result<Boolean> updateAdmin(@RequestBody Admin admin) {
        if (admin.getAdminId() == null) {
            return Result.error("管理员ID不能为空");
        }
        boolean success = adminService.updateAdmin(admin);
        return success ? Result.success("更新成功", true) : Result.error("更新失败");
    }
} 